popover: Use element name
authorTimm Bäder <mail@baedert.org>
Fri, 30 Oct 2015 14:08:18 +0000 (15:08 +0100)
committerTimm Bäder <mail@baedert.org>
Fri, 30 Oct 2015 14:10:35 +0000 (15:10 +0100)
Pick "popover" and add .menu for popover menus

gtk/gtkpopover.c
gtk/gtkpopovermenu.c
gtk/theme/Adwaita/_common.scss
gtk/theme/HighContrast/_common.scss

index 054158202ea51884f790e0c7feb60add40ca69dc..1861dfbbb0ae5b5d52329e30482efd27c53cf6e2 100644 (file)
  * </section>
  * ]|
  *
+ * A popover has a single css node called "popover" and gets the
+ * .menu style class in case it has been created using
+ * gtk_popover_new_from_model.
+ *
  * Since: 3.12
  */
 
@@ -180,7 +184,6 @@ static void
 gtk_popover_init (GtkPopover *popover)
 {
   GtkWidget *widget;
-  GtkStyleContext *context;
 
   widget = GTK_WIDGET (popover);
   gtk_widget_set_has_window (widget, TRUE);
@@ -188,10 +191,6 @@ gtk_popover_init (GtkPopover *popover)
   popover->priv->modal = TRUE;
   popover->priv->tick_id = 0;
   popover->priv->transitions_enabled = TRUE;
-
-  context = gtk_widget_get_style_context (widget);
-  gtk_style_context_add_class (context, GTK_STYLE_CLASS_BACKGROUND);
-  gtk_style_context_add_class (context, GTK_STYLE_CLASS_POPOVER);
 }
 
 static void
@@ -1694,6 +1693,7 @@ gtk_popover_class_init (GtkPopoverClass *klass)
 
   quark_widget_popovers = g_quark_from_static_string ("gtk-quark-widget-popovers");
   gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_POPOVER_ACCESSIBLE);
+  gtk_widget_class_set_css_name (widget_class, "popover");
 }
 
 static void
@@ -2397,6 +2397,7 @@ gtk_popover_new_from_model (GtkWidget  *relative_to,
                             GMenuModel *model)
 {
   GtkWidget *popover;
+  GtkStyleContext *style_context;
 
   g_return_val_if_fail (relative_to == NULL || GTK_IS_WIDGET (relative_to), NULL);
   g_return_val_if_fail (G_IS_MENU_MODEL (model), NULL);
@@ -2404,6 +2405,9 @@ gtk_popover_new_from_model (GtkWidget  *relative_to,
   popover = gtk_popover_new (relative_to);
   gtk_popover_bind_model (GTK_POPOVER (popover), model, NULL);
 
+  style_context = gtk_widget_get_style_context (GTK_WIDGET (popover));
+  gtk_style_context_add_class (style_context, GTK_STYLE_CLASS_MENU);
+
   return popover;
 }
 
index dce87a29495159d61f25fe47471d4035a87d50c2..948b5102a672584ee9f7e07bdc730654baf371b8 100644 (file)
@@ -18,6 +18,7 @@
 #include "config.h"
 #include "gtkpopovermenu.h"
 #include "gtkstack.h"
+#include "gtkstylecontext.h"
 #include "gtkintl.h"
 
 
  *   </child>
  * </object>
  * ]|
-*
+ *
+ * Just like normal popovers created using gtk_popover_new_from_model,
+ * #GtkPopoverMenu instances have a single css node called "popover"
+ * and get the .menu style class.
  */
 
 struct _GtkPopoverMenu
@@ -125,6 +129,7 @@ static void
 gtk_popover_menu_init (GtkPopoverMenu *popover)
 {
   GtkWidget *stack;
+  GtkStyleContext *style_context;
 
   stack = gtk_stack_new ();
   gtk_stack_set_vhomogeneous (GTK_STACK (stack), FALSE);
@@ -134,6 +139,9 @@ gtk_popover_menu_init (GtkPopoverMenu *popover)
   gtk_container_add (GTK_CONTAINER (popover), stack);
   g_signal_connect (stack, "notify::visible-child-name",
                     G_CALLBACK (visible_submenu_changed), popover);
+
+  style_context = gtk_widget_get_style_context (GTK_WIDGET (popover));
+  gtk_style_context_add_class (style_context, GTK_STYLE_CLASS_MENU);
 }
 
 static void
index 6516d437d1ad13da91497ee0f96058a37cacf48d..eb1eb87478942986d69a88fb244e7d1b6638a555 100644 (file)
@@ -1512,7 +1512,7 @@ column-header.button.dnd { // for treeview-like derive widgets
  * Popovers   *
  ***************/
 
-.popover {
+popover {
   padding: 2px;
   border: 1px solid $borders_color;
   border-radius: 5px;
index 2b5aec17defeedf8a1c9374de247aaf381865e71..acefe926d7174f96f09726857266cc1c6e66358a 100644 (file)
@@ -1175,7 +1175,7 @@ GtkTreeView.view.progressbar { //Progressbar in treeview cells
  * Popovers   *
  ***************/
 
-.popover {
+popover {
   margin: 10px;
   padding: 2px;
   border-color: $borders-color;